深入ReentrantLock实现原理,源码深度剖析! – mikechen的互联网架构 您所在的位置:网站首页 reentrantlock condition原理 深入ReentrantLock实现原理,源码深度剖析! – mikechen的互联网架构

深入ReentrantLock实现原理,源码深度剖析! – mikechen的互联网架构

#深入ReentrantLock实现原理,源码深度剖析! – mikechen的互联网架构| 来源: 网络整理| 查看: 265

ReentrantLock是java中非常重要的一个并发工具,想掌握好ReentrantLock,首选需要掌握好AQS,AQS是Java并发包中众多同步组件的构建基石。

接下来我将详解ReentrantLock的核心实现,我将从ReentrantLock成员结构,再到详细的锁获取细节来详解ReentrantLock,文末有ReentrantLock的大厂面试必考题作业。

为了助大家掌握好ReentrantLock,本节课我重点会讲解以下6点:

1.AQS

2.ReentrantLock简介

3.ReentrantLock的主要成员和结构图

4.ReentrantLock的基本使用

5.ReentrantLock的实现原理

6.ReentrantLock锁源码剖析

目录

AQS

AQS全名:AbstractQueuedSynchronizer,是并发容器J.U.C(java.lang.concurrent)下locks包内的一个类,它实现了一个FIFO(FirstIn、FisrtOut先进先出)的队列,底层实现的数据结构是一个双向链表。

深入ReentrantLock实现原理,源码深度剖析!-mikechen的互联网架构

AQS定义了一套多线程访问共享资源的同步器框架,在Lock包许多同步类实现都依赖于它,如常用的:

锁(ReentrantLock) 门阀(CountDownLatch) 信号量(Semaphor) 读写锁(ReadWriteLock)

这些类里面都维护了一套AQS的子类,都是基于AQS来构建。

所以你想掌握好ReentrantLock,你首先需要打好AQS的基础。详细的AQS介绍(点击查看)。

ReentrantLock简介

ReentrantLock重入锁,顾名思义,就是支持重入的锁,它表示能够支持一个线程对资源的重复加锁, 是一个基于AQS( )并发框架的并发控制类。

我们之前学习过Synchronized锁,它也是支持重入的一种锁,参考:Java并发编程系列:深入详解Synchronized同步锁的底层实现

ReentrantLock的主要成员和结构图

深入ReentrantLock实现原理,源码深度剖析!-mikechen的互联网架构

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有